/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.storage.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.storage.entity.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 商品DAO接口
 */
@MyBatisDao
public interface GoodsDao extends CrudDao<Goods> {

    /**
     * 查询数量【品牌Id或者分类Id】
     * @param brandId 品牌Id
     * @param cateId 分类Id
     * @return 数量【品牌Id或者分类Id】
     */
    Integer findCountByBrandIdOrCateId(@Param("brandId") String brandId,@Param("cateId") String cateId);

    /**
     * 查找活动商品列表
     * @param activityId 活动Id
     * @param offset 开端
     * @param size 每页数量
     * @return 活动商品列表
     */
    List<Map> findListByActivityId(@Param("activityId") String activityId, @Param("offset") Integer offset, @Param("size") Integer size);

    /**
     * 查找限时商品列表
     * @param startTime 开始时间
     * @param offset 开端
     * @param size 每页数量
     * @return 限时商品列表
     */
    List<Map> findLimitedListByStartTime(@Param("startTime") Date startTime,@Param("offset") Integer offset,@Param("size") Integer size);

    /**
     * 品牌商品
     * @param activityId 活动Id
     * @param transActivityId 转发Id
     * @param sort 排序
     * @param direction 方向
     * @param offset 开端
     * @param size 每页数量
     * @return 品牌商品
     */
    List<Map> findBrandList(@Param("activityId")String activityId, @Param("transActivityId")String transActivityId, @Param("sort")String sort,@Param("direction") String direction, @Param("offset") Integer offset,@Param("size") Integer size);

    /**
     * 查找更多素材【Id】
     * @param goodsId 商品Id
     * @return 更多素材
     */
    List<Map> findMoreById(@Param("goodsId")String goodsId);

    /**
     * 查找活动商品列表
     * @param activityId 活动Id
     * @return 活动商品列表
     */
    List<Map> findListByActivityId(@Param("activityId")String activityId);

    /**
     * 查找Id【编码】
     * @param code 编码
     * @return 查找Id
     */
    String findIdByCode(@Param("code") String code);

    /**
     * 查找品牌Id【Id】
     * @param goodsId 商品Id
     * @return 品牌Id
     */
    String findBrandIdById(@Param("goodsId") String goodsId);

    /**
     * 查找分类Id【Id】
     * @param goodsId 商品Id
     * @return 分类Id
     */
    String findCateIdById(@Param("goodsId") String goodsId);

    /*
     * 查找分享图
     * @param goodsId 商品Id
     * @return 分享图
     */
    Map findSharePicById(@Param("goodsId")String goodsId);

    /**
     * 查找分享【Id】
     * @param goodsId 商品Id
     * @return 分享
     */
    Map findShareById(@Param("goodsId")String goodsId);

    /**
     * 查找价格
     * @param goodsSpecId 商品规格Id
     * @return 价格
     */
    Map findPrices(@Param("goodsSpecId")String goodsSpecId);
}
